| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132 | 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
| System.register([], function (_export) {
"use strict";
var noMutations, ChildObserver, ChildObserverBinder;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
return {
setters: [],
execute: function () {
noMutations = [];
ChildObserver = (function () {
function ChildObserver(property, changeHandler, selector) {
_classCallCheck(this, ChildObserver);
this.selector = selector;
this.changeHandler = changeHandler;
this.property = property;
}
ChildObserver.prototype.createBinding = function createBinding(target, behavior) {
return new ChildObserverBinder(this.selector, target, this.property, behavior, this.changeHandler);
};
return ChildObserver;
})();
_export("ChildObserver", ChildObserver);
ChildObserverBinder = (function () {
function ChildObserverBinder(selector, target, property, behavior, changeHandler) {
_classCallCheck(this, ChildObserverBinder);
this.selector = selector;
this.target = target;
this.property = property;
this.behavior = behavior;
this.changeHandler = changeHandler;
this.observer = new MutationObserver(this.onChange.bind(this));
}
ChildObserverBinder.prototype.bind = function bind(source) {
var items,
results,
i,
ii,
node,
behavior = this.behavior;
this.observer.observe(this.target, { childList: true, subtree: true });
items = behavior[this.property];
if (!items) {
items = behavior[this.property] = [];
} else {
items.length = 0;
}
results = this.target.querySelectorAll(this.selector);
for (i = 0, ii = results.length; i < ii; ++i) {
node = results[i];
items.push(node.primaryBehavior ? node.primaryBehavior.executionContext : node);
}
if (this.changeHandler) {
this.behavior[this.changeHandler](noMutations);
}
};
ChildObserverBinder.prototype.unbind = function unbind() {
this.observer.disconnect();
};
ChildObserverBinder.prototype.onChange = function onChange(mutations) {
var items = this.behavior[this.property],
selector = this.selector;
mutations.forEach(function (record) {
var added = record.addedNodes,
removed = record.removedNodes,
prev = record.previousSibling,
i,
ii,
primary,
index,
node;
for (i = 0, ii = removed.length; i < ii; ++i) {
node = removed[i];
if (node.nodeType === 1 && node.matches(selector)) {
primary = node.primaryBehavior ? node.primaryBehavior.executionContext : node;
index = items.indexOf(primary);
if (index != -1) {
items.splice(index, 1);
}
}
}
for (i = 0, ii = added.length; i < ii; ++i) {
node = added[i];
if (node.nodeType === 1 && node.matches(selector)) {
primary = node.primaryBehavior ? node.primaryBehavior.executionContext : node;
index = 0;
while (prev) {
if (prev.nodeType === 1 && prev.matches(selector)) {
index++;
}
prev = prev.previousSibling;
}
items.splice(index, 0, primary);
}
}
});
if (this.changeHandler) {
this.behavior[this.changeHandler](mutations);
}
};
return ChildObserverBinder;
})();
_export("ChildObserverBinder", ChildObserverBinder);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL2NoaWxkcmVuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQUFJLFdBQVcsRUFFRixhQUFhLEVBWWIsbUJBQW1COzs7Ozs7O0FBZDVCLGlCQUFXLEdBQUcsRUFBRTs7QUFFUCxtQkFBYTtBQUNiLGlCQURBLGFBQWEsQ0FDWixRQUFRLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBQztnQ0FEbkMsYUFBYTs7QUFFdEIsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7QUFDekIsY0FBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7QUFDbkMsY0FBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDMUI7O0FBTFUscUJBQWEsV0FPeEIsYUFBYSxHQUFBLHVCQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUM7QUFDN0IsaUJBQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDcEc7O2VBVFUsYUFBYTs7OytCQUFiLGFBQWE7O0FBWWIseUJBQW1CO0FBQ25CLGlCQURBLG1CQUFtQixDQUNsQixRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFDO2dDQURyRCxtQkFBbUI7O0FBRTVCLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQ3pCLGNBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0FBQ25DLGNBQUksQ0FBQyxRQUFR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QyxDQUFDO2lCQUN4QjtlQUNGO2FBQ0Y7O0FBRUQsaUJBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO0FBQ3hDLGtCQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLGtCQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUM7QUFDL0MsdUJBQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQzlFLHFCQUFLLEdBQUcsQ0FBQyxDQUFDOztBQUVWLHVCQUFNLElBQUksRUFBQztBQUNULHNCQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUM7QUFDL0MseUJBQUssRUFBRSxDQUFDO21CQUNUOztBQUVELHNCQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztpQkFDN0I7O0FBRUQscUJBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztlQUNqQzthQUNGO1dBQ0YsQ0FBQyxDQUFDOztBQUVILGNBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQztBQUNwQixnQkFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7V0FDOUM7U0FDRjs7ZUFqRlUsbUJBQW1COzs7cUNBQW5CLG1CQUFtQiIsImZpbGUiOiIvVXNlcnMvRWlzZW5iZXJnRWZmZWN0L0RvY3VtZW50cy9HaXRIdWIvVGhlIER1cmFuZGFsIFByb2plY3QvYXVyZWxpYS90ZW1wbGF0aW5nL3NyYy9jaGlsZHJlbi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBub011dGF0aW9ucyA9IFtdO1xuXG5leHBvcnQgY2xhc3MgQ2hpbGRPYnNlcnZlciB7XG4gIGNvbnN0cnVjdG9yKHByb3BlcnR5LCBjaGFuZ2VIYW5kbGVyLCBzZWxlY3Rvcil7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHRoaXMuY2hhbmdlSGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7XG4gICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICB9XG5cbiAgY3JlYXRlQmluZGluZyh0YXJnZXQsIGJlaGF2aW9yKXtcbiAgICByZXR1cm4gbmV3IENoaWxkT2JzZXJ2ZXJCaW5kZXIodGhpcy5zZWxlY3RvciwgdGFyZ2V0LCB0aGlzLnByb3BlcnR5LCBiZWhhdmlvciwgdGhpcy5jaGFuZ2VIYW5kbGVyKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hpbGRPYnNlcnZlckJpbmRlciB7XG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yLCB0YXJnZXQsIHByb3BlcnR5LCBiZWhhdmlvciwgY2hhbmdlSGFuZGxlcil7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIHRoaXMucHJvcGVydHkgPSBwcm9wZXJ0eTtcbiAgICB0aGlzLmJlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgdGhpcy5jaGFuZ2VIYW5kbGVyID0gY2hhbmdlSGFuZGxlcjtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIGJpbmQoc291cmNlKXtcbiAgICB2YXIgaXRlbXMsIHJlc3VsdHMsIGksIGlpLCBub2RlLCBiZWhhdmlvciA9IHRoaXMuYmVoYXZpb3I7XG5cbiAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy50YXJnZXQsIHtjaGlsZExpc3Q6dHJ1ZSwgc3VidHJlZTogdHJ1ZX0pO1xuXG4gICAgaXRlbXMgPSBiZWhhdmlvclt0aGlzLnByb3BlcnR5XTtcbiAgICBpZighaXRlbXMpe1xuICAgICAgaXRlbXMgPSBiZWhhdmlvclt0aGlzLnByb3BlcnR5XSA9IFtdO1xuICAgIH1lbHNle1xuICAgICAgaXRlbXMubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICByZXN1bHRzID0gdGhpcy50YXJnZXQucXVlcnlTZWxlY3RvckFsbCh0aGlzLnNlbGVjdG9yKTtcblxuICAgIGZvcihpID0gMCwgaWkgPSByZXN1bHRzLmxlbmd0aDsgaSA8IGlpOyArK2kpe1xuICAgICAgbm9kZSA9IHJlc3VsdHNbaV07XG4gICAgICBpdGVtcy5wdXNoKG5vZGUucHJpbWFyeUJlaGF2aW9yID8gbm9kZS5wcmltYXJ5QmVoYXZpb3IuZXhlY3V0aW9uQ29udGV4dCA6IG5vZGUpO1xuICAgIH1cblxuICAgIGlmKHRoaXMuY2hhbmdlSGFuZGxlcil7XG4gICAgICB0aGlzLmJlaGF2aW9yW3RoaXMuY2hhbmdlSGFuZGxlcl0obm9NdXRhdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZCgpe1xuICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgb25DaGFuZ2UobXV0YXRpb25zKXtcbiAgICB2YXIgaXRlbXMgPSB0aGlzLmJlaGF2aW9yW3RoaXMucHJvcGVydHldLFxuICAgICAgICBzZWxlY3RvciA9IHRoaXMuc2VsZWN0b3I7XG5cbiAgICBtdXRhdGlvbnMuZm9yRWFjaChyZWNvcmQgPT4ge1xuICAgICAgdmFyIGFkZGVkID0gcmVjb3JkLmFkZGVkTm9kZXMsXG4gICAgICAgICAgcmVtb3ZlZCA9IHJlY29yZC5yZW1vdmVkTm9kZXMsXG4gICAgICAgICAgcHJldiA9IHJlY29yZC5wcmV2aW91c1NpYmxpbmcsXG4gICAgICAgICAgaSwgaWksIHByaW1hcnksIGluZGV4LCBub2RlO1xuXG4gICAgICBmb3IoaSA9IDAsIGlpID0gcmVtb3ZlZC5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgICAgbm9kZSA9IHJlbW92ZWRbaV07XG4gICAgICAgIGlmKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS5tYXRjaGVzKHNlbGVjdG9yKSl7XG4gICAgICAgICAgcHJpbWFyeSA9IG5vZGUucHJpbWFyeUJlaGF2aW9yID8gbm9kZS5wcmltYXJ5QmVoYXZpb3IuZXhlY3V0aW9uQ29udGV4dCA6IG5vZGU7XG4gICAgICAgICAgaW5kZXggPSBpdGVtcy5pbmRleE9mKHByaW1hcnkpO1xuICAgICAgICAgIGlmKGluZGV4ICE9IC0xKXtcbiAgICAgICAgICAgIGl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvcihpID0gMCwgaWkgPSBhZGRlZC5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgICAgbm9kZSA9IGFkZGVkW2ldO1xuICAgICAgICBpZihub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUubWF0Y2hlcyhzZWxlY3Rvcikpe1xuICAgICAgICAgIHByaW1hcnkgPSBub2RlLnByaW1hcnlCZWhhdmlvciA/IG5vZGUucHJpbWFyeUJlaGF2aW9yLmV4ZWN1dGlvbkNvbnRleHQgOiBub2RlO1xuICAgICAgICAgIGluZGV4ID0gMDtcblxuICAgICAgICAgIHdoaWxlKHByZXYpe1xuICAgICAgICAgICAgaWYocHJldi5ub2RlVHlwZSA9PT0gMSAmJiBwcmV2Lm1hdGNoZXMoc2VsZWN0b3IpKXtcbiAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJldiA9IHByZXYucHJldmlvdXNTaWJsaW5nO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGl0ZW1zLnNwbGljZShpbmRleCwgMCwgcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmKHRoaXMuY2hhbmdlSGFuZGxlcil7XG4gICAgICB0aGlzLmJlaGF2aW9yW3RoaXMuY2hhbmdlSGFuZGxlcl0obXV0YXRpb25zKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |